import java.io.IOException;
import bloque.*;

public class TestArboles {

	public static void main(String[] args) throws IOException {
	
/*
		Bloque BloquePrueba1 = new Bloque(0,257);
		Bloque BloquePrueba2 = new Bloque(257);

		System.out.println("I: "+BloquePrueba1.getIdBloque());
		System.out.println("T: "+BloquePrueba1.getTamanio());
		System.out.println("E: "+BloquePrueba1.getEspacioLibre());

		int errorlvl=0;
		int i=0;
		while ((errorlvl!=-2) && (i<=27)) {
			errorlvl=BloquePrueba1.agregarRegistroABloque(ConversionesTiposDatos.convertirIntABytes(i));
			i++;		
		}
		
		System.out.println("\nINSERTE "+(i-1)+" REGISTROS!");
		System.out.println("E: "+BloquePrueba1.getEspacioLibre());

		byte[] bytesBloque1 = new byte[BloquePrueba1.convertirBloqueABytes().length];
		bytesBloque1=BloquePrueba1.convertirBloqueABytes();		
		BloquePrueba2.convertirBytesABloque(bytesBloque1);
		
		System.out.println("\nA VERLOS?");
		
		BloquePrueba2.agregarRegistroABloque(ConversionesTiposDatos.convertirIntABytes(79979));
		BloquePrueba2.agregarRegistroABloque(ConversionesTiposDatos.convertirIntABytes(18911105));

		
		byte[] bytesDatosBloque = BloquePrueba2.getDatosBloque();
		byte[] bytesLongitudRegistro = new byte[ConversionesTiposDatos.sizeOfInt()];

		System.out.println("I: "+BloquePrueba1.getIdBloque());
		System.out.println("T: "+BloquePrueba1.getTamanio());
		System.out.println("E: "+BloquePrueba1.getEspacioLibre());
		
		int accum=0;
		int longitudRegistro=0;
		for (i=0; i<bytesDatosBloque.length;i++) {
				bytesLongitudRegistro[accum]=bytesDatosBloque[i];
				accum++;
				if(accum==4) {
					accum=0;
					longitudRegistro=ConversionesTiposDatos.convertirBytesAInt(bytesLongitudRegistro);
					if (longitudRegistro==0)
						break;
					byte[] bytesDatosRegistro = new byte[longitudRegistro];
					for (int j=0; j<longitudRegistro; j++) {
						i++;
						bytesDatosRegistro[j]=bytesDatosBloque[i];
					}
					System.out.println("LR: "+longitudRegistro+", DR: "+ConversionesTiposDatos.convertirBytesAInt(bytesDatosRegistro)+".");

					accum=0;
					longitudRegistro=0;
				}			
		}
		
		NodoTrie NodoTriePrueba1 = new NodoTrie(79979,19811105,"A ver si esta cosa funca bien!");
		NodoTrie NodoTriePrueba2 = new NodoTrie(-1,-1,"XXX");
		
		
		byte[] bytesNodoTriePrueba1 = NodoTriePrueba1.convertirNodoABytes();
		NodoTriePrueba2.convertirBytesANodo(bytesNodoTriePrueba1);
		
		longitudRegistro=1;
		
		System.out.println("\nAHORA LO PRUEBO CON EL GET PROXIMO:");
		b/yte[] bytesRegistro=null;
		BloquePrueba2.rwBloque();
		
		int j=0;
		do {
		int offSet=BloquePrueba2.getOffSetProxmimoRegistro();
		bytesRegistro=BloquePrueba2.getProximoRegistro();
		if (bytesRegistro.length>0)
			System.out.println("DR: "+ConversionesTiposDatos.convertirBytesAInt(bytesRegistro)+", OF: "+offSet+".");

		if (j==10) BloquePrueba2.actualizarRegistro(208, bytesRegistro);
		
		j++;	
		} while (bytesRegistro.length!=0);


		Trie triePrueba = new Trie();


		triePrueba.GuardarPalabra("Hola", 0);
		triePrueba.GuardarPalabra("mundo!", 1);
		triePrueba.GuardarPalabra("a", 3);
		triePrueba.GuardarPalabra("todo", 4);
		triePrueba.GuardarPalabra("el", 5);
		triePrueba.GuardarPalabra("mundo!", 6);
		triePrueba.GuardarPalabra("alameda", 7);
		

		System.out.println(triePrueba.ObtenerOffSetAudio("Hola"));
		System.out.println(triePrueba.ObtenerOffSetAudio("mundo!"));
		System.out.println(triePrueba.ObtenerOffSetAudio("a"));
		System.out.println(triePrueba.ObtenerOffSetAudio("todo"));
		System.out.println(triePrueba.ObtenerOffSetAudio("el"));
		
		
		triePrueba.imprimirTrie();
		
		//NO PONER LINEAS DESPUES DE ESTA!
		triePrueba.finalizar();	


*/
		RegistroHoja registroHojaPrueba1 = new RegistroHoja();
		RegistroHoja registroHojaPrueba2 = new RegistroHoja();
		
		registroHojaPrueba1.setCantCaractNuevos(20);
		registroHojaPrueba1.setCantCaractRepetidos(30);
		registroHojaPrueba1.setOffset(40);
		registroHojaPrueba1.setPesoGlobal((float)50.50);
		registroHojaPrueba1.setTerm("Chomba");
		
		byte[] bytesRegistroHojaPrueba1 = registroHojaPrueba1.convertirRegistroABytes();
		registroHojaPrueba2.convertirBytesARegistro(bytesRegistroHojaPrueba1);
	
		System.out.println(registroHojaPrueba2.getCantCaractNuevos());
		System.out.println(registroHojaPrueba2.getCantCaractRepetidos());
		System.out.println(registroHojaPrueba2.getOffset());
		System.out.println(registroHojaPrueba2.getPesoGlobal());
		System.out.println(registroHojaPrueba2.getTermino());
	}

}
